package com.lbs.jiepiaisi.base;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.lbs.jiepiaisi.utils.LoggerUtil;

/**
 *
 * 时间：2017/6/15 10:17
 * 作用：FragmentActivity的扩展类
 */

public abstract class BaseFragmentActivity extends FragmentActivity{
    /**
     * 打印类名
     */
    private String TAG = getClass().getSimpleName();
    /**
     * 是否已被销毁
     */
    protected boolean isDestroyed=false;
    /**
     * 上下文对象，等同于this
     */
    protected Activity mContext;
    /**
     * 当前Actvity的状态
     */
    protected boolean isStop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //写死竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        //添加当前Activity到Activity管理器
        BaseActivityManager.add(this);
        mContext = this;
        setView();
        init(savedInstanceState);
    }
    //初始化三部曲
    protected  void init(Bundle savedInstanceState){
        //获取传参
        getExtras();
        //查找控件
        findView();
        //设置监听
        setListener();
    }
    //抽象类的子类不用去实现抽象方法，由继承了抽象类的实体类去实现。
    //初始化三部曲之：获取传参
    protected abstract void getExtras();
    //初始化三部曲之：查找控件
    protected abstract void findView();
    //初始化三部曲之：设置监听
    protected abstract void setListener();
    //初始化三部曲之：设置监听
    protected  void setView(){}

    @Override
    protected void onStop() {
        isStop=true;
        super.onStop();
    }

    @Override
    protected void onDestroy() {
        destory();
        super.onDestroy();
    }

    protected  void destory(){
        isDestroyed=true;
        BaseActivityManager.remove(this);
    }


    /**
     * 是否已被销毁
     */
    public boolean isDestroyed() {
        return isDestroyed;
    }

    /**
     * 打印v级别信息
     */
    protected void log_v(String msg){
        LoggerUtil.v(TAG, msg);
    }
    /**
     * 打印d级别信息
     *
     * @param msg
     */
    protected void log_d(String msg) {
        LoggerUtil.d(TAG, msg);
    }

    /**
     * 打印i级别信息
     *
     * @param msg
     */
    protected void log_i(String msg) {
        LoggerUtil.i(TAG, msg);
    }

    /**
     * 打印w级别信息
     *
     * @param msg
     */
    protected void log_w(String msg) {
        LoggerUtil.w(TAG, msg);
    }

    /**
     * 打印e级别信息
     *
     * @param msg
     */
    protected void log_e(String msg) {
        LoggerUtil.e(TAG, msg);
    }

    /**
     * 打印
     *
     * @param msg
     */
    protected void println(Object msg) {
        LoggerUtil.println(msg);
    }

}
